package app

// func main() {
// 	// ingress
// 	listens := []xlan.Address{
// 		{
// 			Address:  "192.168.182.61:18081",
// 			Protocol: "udp",
// 		},
// 		{
// 			Address:  "192.168.182.62:18082",
// 			Protocol: "kcp",
// 		},
// 		{
// 			Address:  "192.168.182.62:18083",
// 			Protocol: "tcp",
// 		},
// 	}
// 	netDevice := NewMultiNetDevice("net", "test", listens, nil, true, 4)

// 	// egress
// 	tunDevice := tun.NewXLanTunDevice(&tun.DeviceConfig{
// 		Name:        "gxsdn",
// 		Protocol:    "tun",
// 		QualityType: common.QualiteyHigh,
// 		Address:     "10.192.1.1/10",
// 		Interfaces:  "eth0",
// 	}, "")
// 	common.NodeConfig = &common.NodeConfigItem{
// 		ID: 100,
// 	}

// 	for i := 0; i < netDevice.ReadChanCount(); i++ {
// 		go func() {
// 			for {
// 				pkg, err := netDevice.ReadPkg(i)
// 				if err != nil {
// 					logrus.Errorf("read pkg from net device fail, err:%s", err.Error())
// 					continue
// 				}
// 				if pkg == nil {
// 					continue
// 				}
// 				logrus.Infof("read pkg from net device: %v", pkg)
// 				// 处理包逻辑
// 				err = tunDevice.WritePkg(pkg)
// 				if err != nil {
// 					logrus.Errorf("write pkg to tun device fail, err:%s", err.Error())
// 				}
// 			}
// 		}()
// 	}

// 	for i := 0; i < tunDevice.ReadChanCount(); i++ {
// 		go func() {
// 			for {
// 				pkg, err := tunDevice.ReadPkg(i)
// 				if err != nil {
// 					logrus.Errorf("read pkg from tun device fail, err:%s", err.Error())
// 					continue
// 				}
// 				if pkg == nil {
// 					continue
// 				}
// 				logrus.Infof("read pkg from tun device: %v", pkg)
// 				// 处理包逻辑
// 				err = netDevice.WritePkg(pkg)
// 				if err != nil {
// 					logrus.Errorf("write pkg to net device fail, err:%s", err.Error())
// 				}
// 			}
// 		}()
// 	}
// 	select {}
// }
